[Coding018] Sort - 插入排序

直接插入排序

Ben 2024/01/02

More coding records

Get the knowledge flowing and circulating! :)

目录

标题:直接插入排序

插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。

Insertion Sort 和打扑克牌时,从牌桌上逐一拿起扑克牌,在手上排序的过程相同。

image-20240102224034145

举例:

输入: {3 5 6 7}。

首先拿起第一张牌, 手上有 {5}。

拿起第二张牌 3, 把 3 insert 到手上的牌 {5}, 得到 {3 5}。

拿起第三张牌 7, 把 7 insert 到手上的牌 {3 5}, 得到 {3 5 7}。

拿起第四张牌 6, 把 6 insert 到手上的牌 {3 5 7}, 得到 {3 5 6 7}。

以此类推。

具体实例执行过程

image-20240102224329252

伪代码

image-20240102224418091

Java代码实现

运行结果

image-20240102230428772

image-20240102230457329

重点代码段解读

image-20240102225044900

复杂度分析

知识点积累 (LaTex)

※ LaTex基础积累

LaTex 分数:12 $\frac{1}{2}$

LaTex 求和(左右):i=1n1i $\sum_{i=1}^{n-1}i$

LaTex 求和(上下):i=1n1i $\sum\limits_{i=1}^{n-1}i$